Device Method and System for Providing a Media Stream

ABSTRACT

There is provided a method device and system for providing packetized streaming media content (e.g. audio, video and multimedia) to an IP based media presentation appliance (e.g. set-top box). According to some embodiments of the present invention, there may be provided a media stream generator adapted to generate or otherwise derive from a source media a second media stream including more key frames (e.g. MPEG I-Frames) than present in the source media stream.

RELATED APPLICATIONS

This application claims priority from the following U.S. Provisional Patent Applications:

1. “Efficient IPTV System for Metro Networks”

-   -   Application No. 60/999,242 Filing Date: Oct. 16, 2007.

2. “A Device, Method and System for Media Packet Distribution”

-   -   Application No. 61/045,005 Filing Date: Apr. 15, 2008.

FIELD OF THE INVENTION

This application relates generally to the field of multimedia digital communication. More specifically, the present invention relates to a method, system and device for providing a media stream to a subscriber or client appliance.

BACKGROUND

IPTV (Internet Protocol Television) is a system where a digital television service is delivered by using Internet Protocol over a network infrastructure, which may include delivery by a broadband connection. A general definition of IPTV is television content that, instead of being delivered through traditional broadcast and cable formats, is received by the viewer through the technologies used for computer networks.

For residential users, IPTV is often provided in conjunction with Video on Demand and may be bundled with Internet services such as Web access and Voice over IP (“VoIP”). The commercial bundling of IPTV, VoIP and Internet access is referred to as “Triple Play” service (adding mobility is called “Quadruple Play”). IPTV is typically supplied by a service provider using a closed network infrastructure. This closed network approach is in competition with the delivery of TV content over the public Internet, called Internet Television. In businesses, IPTV may be used to deliver television content over corporate LANs.

In 1994, ABC's World News Now was the first television show to be broadcast over the Internet, using the CU-SeeMe videoconferencing software. The term IPTV first appeared in 1995 with the founding of Precept Software by Judith Estrin and Bill Carrico. Precept designed and built an internet video product named “IP/TV”. IP/TV was an MBONE compatible Windows and Unix based application that moved single and multi-source audio/video traffic, ranging from low to DVD quality, using both unicast and IP multicast RTP/RTCP. The software was written primarily by Steve Casner, Karl Auerbach, and Cha Chee Kuan. Precept was acquired by Cisco Systems in 1998. Cisco retains the “IP/TV” trademark.

Internet radio company AudioNet started the first continuous live webcasts with content from WFAA-TV in January, 1998 and KCTU-LP on Jan. 10, 1998. Kingston Communications, a regional telecommunications operator in UK, launched KIT (Kingston Interactive Television), an IPTV over DSL broadband interactive TV service in September 1999 after conducting various TV and VoD trials. The operator added additional VoD service in October 2001 with Yes TV, a provider of VoD content. Kingston was one of the first companies in the world to introduce IPTV and IP VOD over ADSL.

In the past, this technology has been restricted by low broadband penetration. In the coming years, however, residential IPTV is expected to grow at a brisk pace as broadband was made available to more than 200 million households worldwide in the year 2005, projected to grow to 400 million by the year 2010. Many of the world's major telecommunications providers are exploring IPTV as a new revenue opportunity from their existing markets and as a defensive measure against encroachment from more conventional Cable Television services. In the mean time, there are thousands of IPTV installations within schools, corporations, and other institutions that do not require the use of wide area connectivity.

It is important to note that historically there have been many different definitions of “IPTV” including elementary streams over IP networks, transport streams over IP networks and a number of proprietary systems. Although (in Mid 2007) it is premature to say that there is a full consensus of exactly what IPTV should mean, there is no doubt that the most widely used definition today is for single or multiple program transport streams which are sourced by the same network operator that owns or directly controls the “Final Mile” to the consumer's premises. This control over delivery enables a guaranteed quality of service, and also allows the service provider to offer an enhanced user experience such as better program guide, interactive services etc.

In 2006, AT&T launched its U-Verse IPTV service. Comprised of a national head end and regional video serving offices, AT&T offered over 300 channels in 11 cities with more to be added in 2007 and beyond. While using IP protocols, AT&T has built a private IP network exclusively for video transport. IPTV uses a two-way digital broadcast signal sent through a switched telephone or cable network by way of a broadband connection and a set-top box programmed with software (much like a cable or DSS box) that can handle viewer requests to access to many available media sources.

FIG. 1 shows an exemplary IPTV distribution network architecture, starting from a “Headend” on the left side of the figure, and culminating with a viewer set-top boxes (“STB”) and other media presentation appliances on the right side of the figure. Currently, California based UTStarcom, Inc. and Tennessee based Worley Consulting are two companies offering end-to-end networking infrastructure for IPTV-based services.

IPTV covers both live TV (multicasting) as well as stored video (Video on Demand VOD). The playback of IPTV requires either a personal computer or a set-top box connected to a TV. Video content is typically compressed using either a MPEG-2 or a MPEG-4 codec and then sent in an MPEG transport stream delivered via IP Multicast in case of live TV or via IP Unicast in case of Video on Demand. IP Multicast is a method in which information can be sent to multiple computers at the same time. The newly released (MPEG-4) H.264 codec is increasingly used to replace the older MPEG-2 codec.

In standards-based IPTV systems, the primary underlying protocols used for Live TV is using IGMP version 2 for connecting to a multicast stream (TV channel) and for changing from one multicast stream to another multicast stream (TV channel change). Video on Demand (“VOD”) generally use the Real Time Streaming Protocol (RTSP). Currently, the only alternatives to IPTV are traditional TV distribution technologies such as terrestrial, satellite and cable. However, cable can be upgraded to two-way capability and can thus also carry IPTV.

Network Personal Video Recording is a consumer service where real-time broadcast television is captured in the network on a server allowing the end user to access the recorded programs on the schedule of their choice, rather than being tied to the broadcast schedule. The NPVR system provides time-shifted viewing of broadcast programs, allowing subscribers to record and watch programs at their convenience, without the requirement of a truly personal PVR device. It could be compared as a “PVR that is built into the network”—however that would be slightly misleading unless the word “Personal” is, of course, changed to “Public” for this context.

The IP-based video distribution platform offers significant advantages over traditional distribution platform, including the ability to integrate television with other IP-based services like high speed Internet access and VoIP. A switched IP network also allows for the delivery of significantly more content and functionality. In a typical TV or satellite network, using broadcast video technology, all the content constantly flows downstream to each customer, and the customer switches the content at the set-top box. The customer can select from as many choices as the telecomms, cable or satellite company can stuff into the “pipe” flowing into the home. A switched IP network works differently. Content remains in the network, and only the content the customer selects is sent into the customer's home. That frees up bandwidth, and the customer's choice is less restricted by the size of the “pipe” into the home.

Because IPTV requires real-time data transmission and uses the Internet Protocol, it is sensitive to packet loss and delays if the IPTV connection is not fast enough or picture break-up or loss if the streamed data is unreliable. This latter problem has proved particularly troublesome when attempting to stream IPTV across wireless links. Improvements in wireless technology are now starting to provide equipment to solve the problem.

The venerable set-top box, on its way out in the cable world, made resurgence in IPTV systems. The box connects to the home DSL line and is responsible for reassembling the packets into a coherent video stream and then decoding the contents. Computers could do the same job, but most people still don't have an always-on PC sitting beside the TV, so the box has made a comeback.

As shown in FIG. 1, most video enters the system at the telco's national headend, where network feeds are pulled from satellites and encoded if necessary (often in MPEG-2, though H.264 and Windows Media are also possibilities). The video stream is broken up into IP packets and dumped into the telco's core network, which is a massive IP network that handles all sorts of other traffic (data, voice, etc.) in addition to the video. The video streams are received by a local office, which is adapted to deliver the video streams to the end users. (i.e. subscriber media presentation appliances). The local office may add local content (such as TV stations, advertising, and video on demand) to the received video streams. The local office is also adapted to house and operate the IPTV middleware. The middleware software stack handles user authentication, billing, channel change requests, VoD requests, and “last mile” distribution/routing/switching of the content bearing data streams.

Channels in the lineup are multicast from the national headend to local offices over a high capacity data work. There is usually a bottleneck in delivering content from the local offices to the subscriber residence due to the usually low capacity local loop (e.g. local DSL loop). Although Cable systems can may be able to do so (since their bandwidth for a neighborhood can be 4.5 Gbps), even the newest ADSL2+ technology tops out at around 25 Mbps (and this speed drops quickly as distance from the DSLAM [DSL Access Multiplier] grows).

Bandwidth on the local loop (also known as “last mile”) is growing, and in some metro areas is considerably higher than 25 Mbps, but for now, most local IPTV offices overcome the problem of limited bandwidth on the local loop by multicasting a selected channel to some or all of the set-top boxes which have selected the given channel. That is, when a user changes the channel on their set-top box, the box does not “tune” a channel like a cable system. (There is in fact no such thing as “tuning” anymore—the box is simply an IP receiver.) What happens instead is that the box switches channels by using the IP Group Membership Protocol (IGMP) to join a new multicast group. When the local office receives this request, it checks whether the user is authorized to view the new channel. Upon receiving authorization, the local office directs the routers to add that particular user to the channel's distribution list. In this way, only signals that are currently being watched are actually being sent from the local office to the DSLAM and on to the user.

The present problem with multicasting content to the user's IP based media presentation device (e.g. STB) is two fold: (1) Channel zapping time-delay, and (2) Individual ad placement restrictions. Channel zapping time is mainly concerned with broadcast channels, which are typically delivered on the network as IP multicast streams in IPTV networks, where each IP multicast represents a specific channel. The use of multicast across the network is very efficient, as the traffic is sent only once up to the network edge, and only duplicated on a per-customer service in the last access device (DSLAM, PON OLT, Access switch, etc.). However, there are number of sources creating long channel zapping time-delays, but most of the zapping time in a well-engineered network is caused by waiting in the Set Top Box (STB) for the next available I-frame in the MPEG-2 stream (i.e. the size of the MPEG-2 GOP (group of pictures) in seconds), or IDR picture on the H.264 stream. In H.264 for example, IDR pictures may be up to 5 seconds distant, meaning that when a user is requesting a new channel, even if the network reacts very fast to the IGMP request, if the STB starts to get the stream right after the current MPEG-2 GOP/H.264 video sequence start (the I-frame/IDR picture) it must wait up to 5 seconds until it can display the picture on the screen.

Targeted Ad (commercial) insertion is also a big challenge in IPTV networks. Current ad insertion methods rely on a centralized ad insertion server in the main distribution hubs of the networks. This implies that for multicast streams, the commercials are placed based on large geographic areas, without per-user granularity, or per region. If per-user ad insertion is needed, that the multicast traffic must become unicast traffic and would create bandwidth explosion on the network.

Thus, there is a need in the field of IPTV for improved methods, systems and devices for distributing content to user media presentation devices.

SUMMARY OF THE INVENTION

The present invention is a method device and system for Internet Protocol (“IP”) based streaming of media content (e.g. audio, video and multimedia) to a media presentation appliance (e.g. IPTV set-top box or computer). According to some embodiments of the present invention, there may be provided a media stream generator adapted to derive one or more media streams from an IP based source media stream bearing content (e.g. data representing video frames such as MPEG video frames). The media stream generator may derive one or more media streams by: (1) deriving one or a set of uni-cast or multicast IP based media streams from the single source media stream, (2) readdressing the destination IP address(s) on some or all of the derived media streams, and/or (3) inserting into and/or replacing frames in the source media stream with data representing one or more image frames into the derived media stream.

According to some embodiments of the present invention, frames inserted in-between and/or replacing frames in the source media stream may: (1) represent new content inserted into the source media stream, and/or (2) be one or more frames derived from the frames within the source media stream. According to some embodiments of the present invention, the media stream generator may insert a key frame into the media stream and/or replace a non-key frame (e.g. an MPEG delta frame) with a key frame (e.g. an MPEG Intra frame or I-frame), such that the derived media stream may include more key frames than originally present in the source media stream.

According to some embodiments of the present invention, the media stream generator may include or be functionally associated with a key frame generator, which key frame generator may be part of, or functionally associated with, a key frame inserter. According to some embodiments of the present inventions, the key-frame generator may include a decoding module adapted to continuously decode frames of the source media stream into a data set representing a complete image frame, which complete image frame data set may be stored in a cyclic or running buffer. The decoding module may also be adapted to store metadata associated with the source media steam on the cyclical or running buffer, or on another functionally associated buffer. According to some embodiments of the present invention, the frame generator may also include a key frame encoder adapted to encode the complete image frame data stored in the cyclic/running buffer into a key frame suitable for insertion at an insertion point on the source media stream.

The key frame encoder may either continuously encode a running set of key frames, encoding a new key frame each time the complete image frame data set is updated in the buffer, or, according to further embodiments of the present invention, the key frame generator may only encode a key frame upon receiving a signal indicating an instruction to insert a key frame into the source media stream. The encoder may encode a key frame using one of several different compression factors, where higher compression factors result in lower quality and lower bandwidth key frames. It should be understood by one of ordinary skill in the art that any technique or technology, known today or to be derived in the future, for generating or encoding a key frame from a received media stream (packetized MPEG stream) or for transcoding a delta frame into a key frame (e.g. I-Frame) is applicable to the present invention. The Hands-On Guide to Streaminq Media, Second Edition: an Introduction to Delivering On-Demand Media by Joe Follansbee teaches a variety of encoding and transcoding algorithms and techniques and is hereby incorporated by reference in its entirety.

According to some embodiments of the present invention, a media stream may be derived from a source media stream by inserting into the source media stream an encoded key frame, at an insertion point within the source media stream, either by replacing a delta frame or by inserting the encoded key frame between two delta frames. A key frame inserter, including or functionally associated with a key frame generator may, may insert one or more key frames into a source media stream, such that the delta frame following the inserted key frame may by be decoded and rendered into a complete image frame. Depending upon the specific architecture and operation of the media stream generator with which the key frame inserter is integrated or otherwise associated, the key frame inserter may or may not include a de-packetizor or de-packetizing module. According to embodiments of the present invention where the media stream generator is adapted to de-packetize the source media stream, or otherwise extract from the source packets' payload the source media stream frame data, and to provide the source media stream frame data to the key frame generator, the key frame inserter may not require a de-packetizing module. According to embodiments of the present invention where the media stream generator is not adapted to de-packetize or otherwise extract media stream frames from the packetized source media stream, the key frame inserter may include a de-packetizer.

According to embodiments of the present invention, depending on whether the media stream generator includes a packet processing portion or packet processor adapted to edit payload data within a packet of the packetized source media stream, the inserter may or may not include a packetizing module or packetizor. For example, if the media stream generator is adapted to edit payload data within a packet of the packetized source media stream, the key frame inserter may not require a packetizor or packetizing module. In this scenario, the key frame inserter may simply pass an encoded key frame to the generator's packet processor, optionally with an indicator of an insertion point, and the processor may edit the corresponding payload data of the packet into which the key frame is to be inserted, either replacing a delta frame with the key frame or inserting the key frame between two delta frames.

According to embodiments of the present invention where the media stream generator does not include a portion (e.g. packet processor) adapted to edit packetized source media stream payload data (i.e. media stream frame data), the key frame inserter may include a frame replacement/insertion module. The frame replacement/insertion module may receive: (1) the source media stream frame data from a depacketizer, and (2) a corresponding encoded key frame from a key frame generator, which key frame generator generated the key frame based on the same source media stream data receiver by the frame replacement/insertion module. The replacement/insertion module may either replace a delta frame with the encoded key frame or insert the encoded key frame between two delta frames, and may pass the modified set of media stream frames to a packetizor or packetizing module. The packetizor/packetizing module receive the new set of frames, and may also receive packet metadata relating to the packet from which the media stream frame data used to generate the key frame was extracted (i.e. the packet into which the key frame is being inserted). Accordingly, the packetizor/packetizing module may generate a media stream packet including the encoded key frame, which packet may replace the original source media stream packet into which the key frame is to be inserted. According to this embodiment of the present invention, the media stream generator may include a packet replacing module adapted to replace a source media stream packet with a corresponding generated/derived packet produced by a key frame inserter, which key frame inserter may include a: (1) key frame generator, (2) frame replacement/insertion module, and (3) packetizing module.

According to some embodiments of the present invention, as part of an IPTV media distribution node, an IP based media stream generator, or set of media stream generators, may receive: (1) one or a set of a source packetized uni-cast media streams (e.g. addressed to the distribution node or to an IP address associated with the distribution node), (2) one or a set of source packetized multicast media streams addressed to IP addresses associated with the distribution node (e.g. the distribution node IP address or the IP addresses of the node's distribution clients), or (3) a combination of uni-cast and multicast packetized media streams, as described above. The media stream generator(s) may include packet processing circuitry (e.g. packet processor) adapted to replicate a source packetized media stream into multiple uni-cast or multicast packetized media streams, and to individually address the packetized media streams, so as to facilitate retransmission of the received packetized streams to appropriate distribution node clients.

The distribution node may also include a communication module adapted to receive from one or a set of client media presentation appliances requests for specific packetized media streams. Authorized requests for a given media stream (e.g. Channel 5) may cause the addresses of the requesting IP based media presentation appliance to be added to a distribution group list associated with the given media stream (i.e. Channel 5). The media stream generator(s) may accordingly add the requesting appliance's identifier (e.g. IP address) to the destination address field of packets generated or derived for retransmission to clients from or the source media stream associated with the given channel.

The node controller, receiving a request from a client media presentation appliance for a given channel associated with a specific packetized source media stream, may cause a key frame to be inserted into a media stream generated or otherwise derived from the specific source media stream, either before or shortly after the client media presentation appliance's identifier is added to an addressing field of the generated/derived media stream. The insertion of a key frame is intended to mitigate the time between the appliance receiving the media stream and being able to render a full image frame of the content within the media stream. According to some embodiments of the present invention, the node controller, or functionally equivalent node portion, may trigger a key frame inserter to insert a key from into the relevant media stream substantially immediately upon receiving a request. According to further embodiments of the present invention, the controller may wait a delay or hysteresis period between receiving a request for a given channel and triggering a key frame insertion into the relevant transmitted media stream. During this delay/hysteresis period, the controller may await and receive further requests for the same given channel from additional client appliances, thereby facilitating the insertion of one key frame to mitigate zapping time for several client appliances requesting the given channel. According to yet further embodiments of the present invention, the controller may only trigger a key frame insertion for a given request if the time interval between the request and the next key frame expected in the source media stream associated with the requested channel is greater than a predefined threshold/limit. If the controller determines that the next key frame is expected in the source media stream within the predefined limit of time (e.g. 0.5 seconds), it may not trigger a key frame insertion in response to the request. It should be clear to one of skill in the communication arts that any combination of the above listed insertion criteria, or any other insertion criteria/policy suited to balance the tradeoff between mitigating zapping time (i.e. time between channel request and image frame rendering) and mitigating bandwidth, may be applicable to the present invention.

According to some embodiments of the present invention, the node controller, or another portion of the system, may monitor, track, calculate or otherwise estimate/determine the bandwidth of a given packetized media stream transmitted to presentation devices/appliances and may regulate the compression factor utilized by the encoder in the key frame generator in direct relation with the bandwidth. For example, if multiple key frames are inserted into the media stream over some relatively short period of time (e.g. 3 key frames over 5 seconds), and as a result of the insertions the media stream's bandwidth has increased to a value above some predetermined media stream bandwidth target value (because key frames contain more data than delta frames), the controller may signal the key frame generator to encode the next key frame to be inserted (after the next zapping request) to use a higher compression factor (i.e. lower quality and lower bandwidth key frame) than used for the previous key frames. Conversely, if the media stream bandwidth is lower than a predefined target bandwidth, the controller may instruct the key frame generator to use a lower compression factor (i.e. higher quality and higher bandwidth key frame) than previously used.

According to further embodiments of the present invention, the node controller may regulate transmitted media stream bandwidth to maintain a predefined target bandwidth using a mixed replacement/insertion policy. If the bandwidth of a given stream is approaching or exceeding the target bandwidth, the next time a key is to be added, the controller may cause the key frame to replace a corresponding delta frame. Conversely, if the media stream bandwidth is significantly lower than a target bandwidth, the controller may cause a generated key frame to be inserted between two delta frames.

Although many of the novel features and techniques described herein were described in the context of an IP based media distribution network, it should be clear to one of skill in the art of communication that various novel features and techniques described herein find equal application in non-IP based media generation and distribution devices and systems.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:

FIG. 1 shows an exemplary IPTV distribution network architecture, starting from a “Headend” on the left side of the figure, and culminating with a viewer set-top boxes (“STB”) and other media presentation appliances on the right side of the figure in accordance with the prior art;

FIG. 2 shows a conceptual block diagram of an IP packet based media distribution node adapted to receive source media stream(s) and to generate/derive one or more multicast and/or unicast media stream(s) in accordance with some embodiments of the present invention;

FIG. 3 shows a flowchart including the steps of an exemplary method of operating a media stream distribution node according to some embodiments of the present invention;

FIGS. 4A-4C show conceptual block diagrams of three separate embodiments of a key frame insertion portions of a IP packet based media distribution nodes according to some embodiments of the present invention;

FIG. 5 shows a flowchart including the steps of an exemplary method of generating and inserting a key frame into a source media stream according to some embodiments of the present invention;

FIG. 6 shows a symbolic block diagram of a further embodiment of an IP based media stream distribution node according to some embodiments of the present invention, including a multi-delay tap architecture adapted to facilitate multiple media stream distribution sub-groups based on a single source media stream; and

FIG. 7 shows a symbolic block diagram of a further embodiment of an IP based media stream distribution node according to some embodiments of the present invention, including a media stream generator adapted to generate/derive multiple uni-cast and multicast media streams from each of a set of source media streams, and further including a switch adapted to connect either one of the source media streams or one of the derived steams to a media presentation appliance/device.

It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.

Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.

Embodiments of the present invention may include apparatuses for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs) electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, or any other type of media suitable for storing electronic instructions, and capable of being coupled to a computer system bus.

The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the inventions as described herein.

The present invention is a method device and system for Internet Protocol (“IP”) based streaming of media content (e.g. audio, video and multimedia) to a media presentation appliance (e.g. IPTV set-top box or computer). According to some embodiments of the present invention, there may be provided a media stream generator adapted to derive one or more media streams from an IP based source media stream bearing content (e.g. data representing video frames such as MPEG video frames). The media stream generator may derive one or more media streams by: (1) deriving one or a set of uni-cast or multicast IP based media streams from the single source media stream, (2) readdressing the destination IP address(s) on some or all of the derived media streams, and/or (3) inserting into and/or replacing frames in the source media stream with data representing one or more image frames into the derived media stream.

According to some embodiments of the present invention, frames inserted in-between and/or replacing frames in the source media stream may: (1) represent new content inserted into the source media stream, and/or (2) be one or more frames derived from the frames within the source media stream. According to some embodiments of the present invention, the media stream generator may insert a key frame into the media stream and/or replace a non-key frame (e.g. an MPEG delta frame) with a key frame (e.g. an MPEG Intra frame or I-frame), such that the derived media stream may include more key frames than originally present in the source media stream.

According to some embodiments of the present invention, the media stream generator may include or be functionally associated with a key frame generator, which key frame generator may be part of, or functionally associated with, a key frame inserter. According to some embodiments of the present inventions, the key-frame generator may include a decoding module adapted to continuously decode frames of the source media stream into a data set representing a complete image frame, which complete image frame data set may be stored in a cyclic or running buffer. The decoding module may also be adapted to store metadata associated with the source media steam on the cyclical or running buffer, or on another functionally associated buffer. According to some embodiments of the present invention, the frame generator may also include a key frame encoder adapted to encode the complete image frame data stored in the cyclic/running buffer into a key frame suitable for insertion at an insertion point on the source media stream.

The key frame encoder may either continuously encode a running set of key frames, encoding a new key frame each time the complete image frame data set is updated in the buffer, or, according to further embodiments of the present invention, the key frame generator may only encode a key frame upon receiving a signal indicating an instruction to insert a key frame into the source media stream. The encoder may encode a key frame using one of several different compression factors, where higher compression factors result in lower quality and lower bandwidth key frames. It should be understood by one of ordinary skill in the art that any technique or technology, known today or to be derived in the future, for generating or encoding a key frame from a received media stream (packetized MPEG stream) or for transcoding a delta frame into a key frame (e.g. I-Frame) is applicable to the present invention. The Hands-On Guide to Streaming Media, Second Edition: an Introduction to Delivering On-Demand Media by Joe Follansbee teaches a variety of encoding and transcoding algorithms and techniques and is hereby incorporated by reference in its entirety.

According to some embodiments of the present invention, a media stream may be derived from a source media stream by inserting into the source media stream an encoded key frame, at an insertion point within the source media stream, either by replacing a delta frame or by inserting the encoded key frame between two delta frames. A key frame inserter, including or functionally associated with a key frame generator may, may insert one or more key frames into a source media stream, such that the delta frame following the inserted key frame may by be decoded and rendered into a complete image frame. Depending upon the specific architecture and operation of the media stream generator with which the key frame inserter is integrated or otherwise associated, the key frame inserter may or may not include a de-packetizor or de-packetizing module. According to embodiments of the present invention where the media stream generator is adapted to de-packetize the source media stream, or otherwise extract from the source packets' payload the source media stream frame data, and to provide the source media stream frame data to the key frame generator, the key frame inserter may not require a de-packetizing module. According to embodiments of the present invention where the media stream generator is not adapted to de-packetize or otherwise extract media stream frames from the packetized source media stream, the key frame inserter may include a de-packetizer.

According to embodiments of the present invention, depending on whether the media stream generator includes a packet processing portion or packet processor adapted to edit payload data within a packet of the packetized source media stream, the inserter may or may not include a packetizing module or packetizor. For example, if the media stream generator is adapted to edit payload data within a packet of the packetized source media stream, the key frame inserter may not require a packetizor or packetizing module. In this scenario, the key frame inserter may simply pass an encoded key frame to the generator's packet processor, optionally with an indicator of an insertion point, and the processor may edit the corresponding payload data of the packet into which the key frame is to be inserted, either replacing a delta frame with the key frame or inserting the key frame between two delta frames.

According to embodiments of the present invention where the media stream generator does not include a portion (e.g. packet processor) adapted to edit packetized source media stream payload data (i.e. media stream frame data), the key frame inserter may include a frame replacement/insertion module. The frame replacement/insertion module may receive: (1) the source media stream frame data from a depacketizer, and (2) a corresponding encoded key frame from a key frame generator, which key frame generator generated the key frame based on the same source media stream data receiver by the frame replacement/insertion module. The replacement/insertion module may either replace a delta frame with the encoded key frame or insert the encoded key frame between two delta frames, and may pass the modified set of media stream frames to a packetizor or packetizing module. The packetizor/packetizing module receive the new set of frames, and may also receive packet metadata relating to the packet from which the media stream frame data used to generate the key frame was extracted (i.e. the packet into which the key frame is being inserted). Accordingly, the packetizor/packetizing module may generate a media stream packet including the encoded key frame, which packet may replace the original source media stream packet into which the key frame is to be inserted. According to this embodiment of the present invention, the media stream generator may include a packet replacing module adapted to replace a source media stream packet with a corresponding generated/derived packet produced by a key frame inserter, which key frame inserter may include a: (1) key frame generator, (2) frame replacement/insertion module, and (3) packetizing module.

According to some embodiments of the present invention, as part of an IPTV media distribution node, an IP based media stream generator, or set of media stream generators, may receive: (1) one or a set of a source packetized uni-cast media streams (e.g. addressed to the distribution node or to an IP address associated with the distribution node), (2) one or a set of source packetized multicast media streams addressed to IP addresses associated with the distribution node (e.g. the distribution node IP address or the IP addresses of the node's distribution clients), or (3) a combination of uni-cast and multicast packetized media streams, as described above. The media stream generator(s) may include packet processing circuitry (e.g. packet processor) adapted to replicate a source packetized media stream into multiple uni-cast or multicast packetized media streams, and to individually address the packetized media streams, so as to facilitate retransmission of the received packetized streams to appropriate distribution node clients.

The distribution node may also include a communication module adapted to receive from one or a set of client media presentation appliances requests for specific packetized media streams. Authorized requests for a given media stream (e.g. Channel 5) may cause the addresses of the requesting IP based media presentation appliance to be added to a distribution group list associated with the given media stream (i.e. Channel 5). The media stream generator(s) may accordingly add the requesting appliance's identifier (e.g. IP address) to the destination address field of packets generated or derived for retransmission to clients from or the source media stream associated with the given channel.

The node controller, receiving a request from a client media presentation appliance for a given channel associated with a specific packetized source media stream, may cause a key frame to be inserted into a media stream generated or otherwise derived from the specific source media stream, either before or shortly after the client media presentation appliance's identifier is added to an addressing field of the generated/derived media stream. The insertion of a key frame is intended to mitigate the time between the appliance receiving the media stream and being able to render a full image frame of the content within the media stream. According to some embodiments of the present invention, the node controller, or functionally equivalent node portion, may trigger a key frame inserter to insert a key from into the relevant media stream substantially immediately upon receiving a request. According to further embodiments of the present invention, the controller may wait a delay or hysteresis period between receiving a request for a given channel and triggering a key frame insertion into the relevant transmitted media stream. During this delay/hysteresis period, the controller may await and receive further requests for the same given channel from additional client appliances, thereby facilitating the insertion of one key frame to mitigate zapping time for several client appliances requesting the given channel. According to yet further embodiments of the present invention, the controller may only trigger a key frame insertion for a given request if the time interval between the request and the next key frame expected in the source media stream associated with the requested channel is greater than a predefined threshold/limit. If the controller determines that the next key frame is expected in the source media stream within the predefined limit of time (e.g. 0.5 seconds), it may not trigger a key frame insertion in response to the request. It should be clear to one of skill in the communication arts that any combination of the above listed insertion criteria, or any other insertion criteria/policy suited to balance the tradeoff between mitigating zapping time (i.e. time between channel request and image frame rendering) and mitigating bandwidth, may be applicable to the present invention.

According to some embodiments of the present invention, the node controller, or another portion of the system, may monitor, track, calculate or otherwise estimate/determine the bandwidth of a given packetized media stream transmitted to presentation devices/appliances and may regulate the compression factor utilized by the encoder in the key frame generator in direct relation with the bandwidth. For example, if multiple key frames are inserted into the media stream over some relatively short period of time (e.g. 3 key frames over 5 seconds), and as a result of the insertions the media stream's bandwidth has increased to a value above some predetermined media stream bandwidth target value (because key frames contain more data than delta frames), the controller may signal the key frame generator to encode the next key frame to be inserted (after the next zapping request) to use a higher compression factor (i.e. lower quality and lower bandwidth key frame) than used for the previous key frames. Conversely, if the media stream bandwidth is lower than a predefined target bandwidth, the controller may instruct the key frame generator to use a lower compression factor (i.e. higher quality and higher bandwidth key frame) than previously used.

According to further embodiments of the present invention, the node controller may regulate transmitted media stream bandwidth to maintain a predefined target bandwidth using a mixed replacement/insertion policy. If the bandwidth of a given stream is approaching or exceeding the target bandwidth, the next time a key is to be added, the controller may cause the key frame to replace a corresponding delta frame. Conversely, if the media stream bandwidth is significantly lower than a target bandwidth, the controller may cause a generated key frame to be inserted between two delta frames.

Although many of the novel features and techniques described herein were described in the context of an IP based media distribution network, it should be clear to one of skill in the art of communication that various novel features and techniques described herein find equal application in non-IP based media generation and distribution devices and systems.

Turning now to FIG. 2, there is shown a conceptual block diagram of an IP packet based media distribution node adapted to receive source media stream(s) and to generate/derive one or more multicast and/or unicast media stream(s) in accordance with some embodiments of the present invention. The operation of the distribution node may be described in conjunction with FIG. 3, which shows a flowchart including the steps of an exemplary method of operating a media stream distribution node according to some embodiments of the present invention. A media stream generator may receive source media steam (Step 3000). The media stream generator may generate/derive one or more uni-cast or multicast media streams, each of which is addressed to different one or set of media presentation appliances. The IP address of an appliance requesting (step 3100) the content of a specific source media stream (e.g. channel 10) may be added to the header of a media stream generated/derived from the requested source stream. (step 3400). According to some embodiments of the present invention, a key frame generator may also generate and the media stream generator may insert a key frame into the relevant generated/derived stream in response to the request (steps 3200 and 3300).

FIGS. 4A-4C show conceptual block diagrams of three separate embodiments of key frame insertion portions of IP packet based media distribution nodes according to some embodiments of the present invention. The description of the embodiments shown in FIGS. 4A-4C may be understood in view of FIG. 5, which shows a flowchart including the steps of an exemplary method of generating and inserting a key frame into a source media stream according to some embodiments of the present invention. The basic steps of generating a key frame may include: (1) receiving the source media stream; (2) decoding an image frame data set from the source media stream; (3) maintaining a running (cyclical buffer) image frame data set based on the decided source media stream (steps 4000 and 4100); and (4) either continuously encoding a key frame based on the running image frame data set, or encoding a key frame upon receiving a signal to encode from a controller (step 4200). FIG. 5 also includes the step of either inserting the key frame in between two delta frames or replacing a delta frame with a corresponding key frame (at an insertion point) upon receiving a signal from a controller, which controller may trigger key frame generation and/or insertion and/or replacement in response to a request from a media presentation appliance/device to receive content associated with the source media stream.

Turning back to FIG. 4A, there is shown an embodiment of the present invention, including a de-packetizer (de-packetize module) adapted to de-packetize the received source media stream and to provide the media stream data (i.e. frames) to a key frame generator. The key frame generator may include a decoder adapted to convert the media stream frames into complete image frame data sets, and a running image frame buffer (e.g. cyclic buffer) adapted to store a running copy of image frame data sets. A key frame encoder may encode a complete image frame data set in the buffer into a key frame, either continuously, or in response to a signal from a controller. According to some embodiments of the present invention, the controller may also instruct the encoder as to which of compression factor to use in encoding the key frame.

According to embodiments corresponding to FIG. 4A, a frame replacement/insertion module may receive the de-packetized media stream frames from the de-packetizer along with an encoded key frame from the encoder and may either: (1) replace an frame of the source media stream with the encoded key frame, or (2) insert the encoded key frame between two frames of the source media stream. A packetizer (packetizing module) may receive the new set of media stream frames and may packetize the set using metadata received from the de-packetizer, thereby generating a new packet corresponding to the packet which was de-packetized used to generate the key frame. A packet replacing module may replace in the media stream the packet used to generate the key frame with the new packet.

Turning to FIG. 4B, there is shown an embodiment similar to the one in FIG. 4A, but with the key frame insertion replacement being performed by a packet processor adapted to read, process and edit packet payload data.

The embodiment shown in FIG. 4C includes a packet processor adapted to provide the key frame generator payload data (i.e. media stream frames) directly, without the need for an additional de-packetizing module. There is also shown in FIG. 4C a bandwidth monitoring module functionally associated with the controller, there enabling the controller to determine which encoding and insertion policy may be required for a given key frame.

Turning now to FIG. 6, there is shown a symbolic block diagram of a further embodiment of an IP based media stream distribution node according to some embodiments of the present invention, including a multi-delay tap architecture adapted to facilitate multiple media stream distribution sub-groups based on a single source media stream.

Turning now to FIG. 7, there is shown a symbolic block diagram of a further embodiment of an IP based media stream distribution node according to some embodiments of the present invention, including a media stream generator adapted to generate/derive multiple uni-cast and multicast media streams from each of a set of source media streams, and further including a switch adapted to connect either one of the source media streams or one of the derived steams to a media presentation appliance/device.

It should be clear to one of skill in the art that any novel feature, or combination features, shown as part of any of the above described embodiments may be applicable to another one of the described embodiments. While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention. 

1. A device for deriving a second media stream from a first media stream comprising: a key frame generator.
 2. The device according to claim 1, wherein said media streams are packetized media streams and wherein said device further comprises a packet processor.
 3. The device according to claim 2, wherein said packet processor is adapted to extract frame data from said first media stream and to provide the frame data to said key frame generator.
 4. The device according to claim 3, wherein said packet processor is adapted to derive the second media stream by inserting a key frame generated by said key frame generator into a packet of the first media stream.
 5. The device according to claim 2, further comprising a de-packetizing module adapted to extract frame data from the first media stream and to provide the extracted frame data to said key frame generator.
 6. The device according to claim 5, wherein packet processor is adapted to derive the second media stream by inserting a key frame generated by said key frame generator into a packet of the first media stream.
 7. The device according to claim 1, wherein said key frame generator continuously generates key frames based on the first media stream.
 8. The device according to claim 1, wherein said key frame generator is adapted to generate a key frame based on the first media stream in response to a signal from a node controller.
 9. The device according to claim 8, wherein said key frame generator is adapted to encode a key frame using a compression factor indicated by said node controller.
 10. The device according to claim 8, wherein said media streams are packetized media streams and wherein said device further comprises a packet processor adapted to insert a client appliance identifier of a client requesting a channel associated with the media streams into an addressing field of the second media stream.
 11. The device according to claim 10, wherein said packet processor is adapted to derive the second media stream from the first media stream by inserting a key frame generated by said key frame generator into a packet of the first media stream substantially concurrently with receiving a request from the client for the channel associated with the media streams.
 12. A method for deriving a second media stream from a first media stream comprising: generating a key frame based on the first media stream.
 13. The method according to claim 12, wherein the media streams are packetized media streams and further including de-packetizing the first media stream.
 14. The method according to claim 13, wherein de-packetized media frame data from the first media stream used to generate the key frame.
 15. The method according to claim 13, further comprising inserting the key frame into a packet of the first media stream. 